/*
	缓存的主要数据结构ByteView
*/

package geecache

type ByteView struct {
	b []byte
}

// 返回长度
func (bv ByteView) Len() int {
	return len(bv.b)
}

// 返回字符串
func (bv ByteView) String() string {
	return string(bv.b)
}

// 返回byte切片
func (bv ByteView) ByteSlice() []byte {
	return cloneByte(bv.b)
}

// 拷贝byte值，用于实现返回byte切片（使用拷贝实现只读）
func cloneByte(b []byte) []byte {
	// 拷贝传入的b
	c := make([]byte, len(b))
	copy(c, b)

	return b
}

